#include <iostream>
using namespace std;

// 找到入参的最大值
// 两个int版本
int my_max(int x, int y){
    return x > y ? x : y;
}

// 两个double的版本
double my_max(double x, double y){
    return x > y ? x : y;
}

// 三个int版本
int my_max(int x, int y, int z){
    if(x > y){
        return x > z ? x : z;
    }else{
        return y > z ? y : z;
    }
}

int main(int argc, const char *argv[]){
    int a = 10;
    int b = 20;
    // 在调用时 编译器会根据实参的类型 自动推导该调用哪个版本的函数
    cout << my_max(a, b) << endl; // 20

    double c = 3.14;
    double d = 5.28;
    cout << my_max(c, d) << endl; // 5.28

    int e = 30;
    cout << my_max(a, b, e) << endl; // 30

    return 0;
}